Computer vision includes the science and engineering disciplines dedicated to the development of machines with vision. These machines receive image data (e.g., video sequence, views from multiple cameras, multi-dimensional data from 3D scanners, etc.) and analyze the image data to perform a variety of image related functions such as scene reconstruction, event detection, object identification, object tracking, learning, indexing, motion estimation, image restoration, etc.
Active contours, also referred to as pressure snakes, are used in computer vision to identify and delineate an object outline (e.g., trace the object). Pressure snakes trace an object by iteratively attempting to minimize an image energy associated with the contour as a sum of internal and external energies. FIG. 1 illustrates a conventional pressure snake or contour 100 that is attempting to trace a chevron object 101. The pressure snake algorithm operates by computing image energy 105 and curvature energy 110. The pressure snake algorithm generates an energy function associated with contour 100 and attempts to minimize the image energy by aligning contour 100 with the boundaries of object 101. Image energy is calculated for each node 115 along contour 100 by evaluating only pixel energies in a small neighborhood 120 localized around each node 115. Image energy 105 pushes contour 100 outward while curvature energy 110 pulls nodes inward along the line axes. Nodes 115 are added when a line segment is too long and deleted when a line segment is too short. The pressure snake algorithm inherently rounds corners, since the algorithm includes no mechanism for attracting nodes 105 to the corners of object 101.